1. Technical Field
The present disclosure relates to a decoder and a decoding method thereof, in particular, to a decoder for a LDPC code and a BCH code and a decoding method thereof.
2. Description of Related Art
During data transmission, data may be lost or damaged due to the poor reliability of the transmission medium or external interferences. Error correcting code or error control code has been designed for correcting the damage or loss data and the reconstruction of the raw data. Common error correcting codes include Hamming Code, Reed Solomon Code, Bose Chaudhuri Hocquenghem (BCH) Code, and Low Density Parity Check (LDPC) Code, wherein the LDPC code has the best error correcting performance, but the computational complexity thereof is relatively high.
In order to simultaneously have better error correcting ability and the low computational complexity, a LDPC decoder generally is designed to adopt the Min-Sum algorithm and connected with a BCH decoder in series for executing the decoding algorithm. As shown in FIG. 1A, the encoded data Ec0 is firstly decoded by the LDPC decoder 10 based on the Min-Sum algorithm, and the decoded data is then inputted to the BCH decoder 20 to generate the decoded result Rc0. Even though using the LDPC decoder 10 with the Min-Sum algorithm can greatly reduce the computational complexity, the efficiency at same time may be slightly reduced. The BCH decoder 20 can ensure that the erroneous data can be corrected while the number of batches associated with erroneous information in the data is under a predefined number.
The following description describes a decoding method for a LDPC decoder connected to the BCH decoder in series, as shown in FIG. 1B. At Step S110, the LDPC decoder and the BCH decoder are firstly initialized. Then the check node and the bit node of the encoded data are respectively updated at Steps S120 and S130. Afterwards, whether the number of the updated check node and the updated bit node is greater than a predefined number and/or whether the decoded data satisfies the zero syndrome vector constraint (i.e., HxT=0, where x denotes the decoded codeword in row vector form, and H denotes a syndrome check matrix) are determined at Step S140. At Step S150, when that the number of the updated check node and the updated bit node is greater than the predefined number and the decoded data satisfies the zero syndrome vector constraint is determined, the BCH decoder starts to decode the decoded data to ensure accuracy of the decoded data. At Step S160, the result of the decoded data is outputted. By contrast, if the determination at Step S140 is false, the decoding method goes back to Step S120 for updating the check node and the bit node again.
Though the conventional structure which the LDPC decoder is connected to the BCH decoder in series is capable of reducing the computational complexity while ensuring the error correcting ability, the entire decoding time is considerable long since the encoded data Ec0 must be firstly decoded by the LDPC decoder, and then the BCH decoder decodes the decoded data from the LDPC decoder to generate the decoded result Rc0. Thus, within the same decoding time, the processing amount for decoding in the above decoder is decreased, and the overall decoding performance may be poor.